pandas读取多层嵌套json | 您所在的位置:网站首页 › python 多层嵌套字典 › pandas读取多层嵌套json |
与第三方API接口对接的时候,是经常会遇到多层嵌套的json的,而我们需要的数据可能仅仅是某几个,或者是需要转换成二维表用来存入数据库。通常我都是用遍历来一遍一遍的for循环获取,但这样效率差劲不说,代码还显得特别low,今天安利一个非常快捷的工具给大家---pd.json_normalize。
首先导入相关库 import pandas as pd from pandas.io.json import json_normalize设定一个json df = { "error": 0, "status": "success", "results": [ { "currentCity": "青岛", "index": [ { "title": "穿衣", "zs": "较冷", "tipt": "穿衣指数", "des": "建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。", 'xuhao': [ 'a','b','c','d' ] }, { "title": "紫外线强度", "zs": "中等", "tipt": "紫外线强度指数", "des": "属中等强度紫外线辐射天气,外出时建议涂擦SPF高于15、PA+的防晒护肤品,戴帽子、太阳镜。", 'xuhao': [ 1, 2, 3, 4 ] } ] } ] }这里要说一下,我们手动设定json不能用json.dumps处理,否则会报参数错误,即应该使用dict,api获取的则直接使用即可。 假设我们要获取key=‘xuhao‘的值 先不加参数试试 x = json_normalize(df) print(x)结果如下 结果如下 结果如下 得到报错,尝试过执行但zs并不是一直存在,也给出了建议,即errors=‘ignore’ ,再试试: x = json_normalize(df, record_path=['results', 'index', 'xuhao'], meta=['error', ['results', 'currentCity'], ['results', 'index', 'zs']], errors='ignore') print(x)结果如下: |
CopyRight 2018-2019 实验室设备网 版权所有 |